package com.ruoyi.warning.mapper;

import com.ruoyi.sale.domain.SaleorderOrder;
import com.ruoyi.warning.domain.Warning;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 每月预警值Mapper接口
 *
 * @author zjh
 * @date 2022-06-09
 */
public interface WarningMapper
{
    /**
     * 查询每月预警值
     *
     * @param warningId 每月预警值ID
     * @return 每月预警值
     */
    public Warning selectWarningById(Long warningId);

    /**
     * 查询每月预警值列表
     *
     * @param warning 每月预警值
     * @return 每月预警值集合
     */
    public List<Warning> selectWarningList(Warning warning);

    /**
     * 查询每月产品列表
     *
     * @return 每月产品销售数量集合
     */
    public List<Warning> selectWarningListToEach();

    /**
     * 查询每月预警值列表
     *
     * @param warning 每月预警值
     * @return 每月预警值集合
     */
    public List<Warning> selectWarningListWhichLack(Warning warning);

    /**
     * 查询未支付订单数
     *
     * @param saleorderOrder 信息
     * @return 结果
     */
    public int selectPayCount(SaleorderOrder saleorderOrder);

    /**
     * 查询未开票数
     *
     * @param saleorderOrder 部门信息
     * @return 结果
     */
    public int selectInvoiceCount(SaleorderOrder saleorderOrder);

    /**
     * 批量插入定时任务
     *
     * @param Warnings 需要插入的数据集合
     * @return 结果
     */
    public int insertWarnings(@Param("WarningList") List<Warning> Warnings);

    /**
     * 新增每月预警值
     *
     * @param warning 每月预警值
     * @return 结果
     */
    public int insertWarning(Warning warning);

    /**
     * 修改每月预警值
     *
     * @param warning 每月预警值
     * @return 结果
     */
    public int updateWarning(Warning warning);

    /**
     * 删除每月预警值
     *
     * @param warningId 每月预警值ID
     * @return 结果
     */
    public int deleteWarningById(Long warningId);

    /**
     * 批量删除每月预警值
     *
     * @param warningIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteWarningByIds(String[] warningIds);
}
